The present invention relates to a system for profiling and coverage analysis of integrated circuits devices. The present invention is further related to a system for in-circuit emulation of program-controlled units, such as microprocessors, microcontrollers or signal processors.
In-circuit emulation of a program-controlled unit allows the states existing and operations taking place in the program-controlled unit to be tracked and altered during operation of the system that contains the program-controlled unit. In-circuit emulation makes it possible to read, output or alter contents of internal registers or memories in the program-controlled unit and, to output data or signals transferred within the program-controlled unit from the program-controlled unit (trace data). During the emulation, commands which need to be executed and/or operands which are used by the program-controlled unit may be fetched from a different memory than is normally the case, and/or the program executed by the program-controlled unit may be interrupted.
These and other actions can be made dependent on the presence of particular conditions, e.g., on the arrival at a particular value of a program counter. Emulation allows errors occurring in the system that contains the program-controlled unit to be localized and corrected during operation of the system and allows the response of the system to be tested when executing new or modified programs.
A program-controlled unit used in normal operation of a system can usually not be operated such that the states existing and operations taking place therein can be tracked and altered during operation, since it does not contain the components required for this, due to space and cost saving reasons. In-circuit emulation is therefore usually performed using a special version of the respective program-controlled unit also known as program-controlled unit emulation version or “bond-out” version of the program-controlled unit.
A general challenge of program-controlled units is that it is often not possible to localize and eliminate occurring errors in the program-controlled unit. For this reason, emulation versions of program-controlled units need to be equipped with debug resources that can monitor the operations proceeding within the program-controlled unit. Such and other debug resources make it possible to monitor the occurrence of states or events within the program-controlled unit, which states or events can be prescribed from outside the program-controlled unit, and, when such a state or such an event has occurred, to carry out or instigate actions which can be prescribed from outside the program-controlled unit.
For these and other reasons, there is a need for the present invention.